package com.zzyl.nursing.domain;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.zzyl.common.annotation.Excel;
import com.zzyl.common.core.domain.BaseEntity;

/**
 * 入住配置对象 check_in_config
 * 
 * @author zzyl
 * @date 2025-10-16
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("入住配置实体")
public class CheckInConfig extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**
    * 主键ID，自增
    */
    @ApiModelProperty(value = "主键ID")
    private Long id;

    /**
    * 对应入住表的ID（一对一关联，无外键约束）
    */
    @Excel(name = "对应入住表的ID", readConverterExp = "一=对一关联，无外键约束")
    @ApiModelProperty(value = "对应入住表的ID")
    private Long checkInId;

    /**
    * 护理等级ID（如：1-自理, 2-半护, 3-全护）
    */
    @Excel(name = "护理等级ID", readConverterExp = "如=：1-自理,,2=-半护,,3=-全护")
    @ApiModelProperty(value = "护理等级ID")
    private Integer nursingLevelId;

    /**
    * 护理等级名称（冗余字段，便于查询）
    */
    @Excel(name = "护理等级名称", readConverterExp = "冗=余字段，便于查询")
    @ApiModelProperty(value = "护理等级名称")
    private String nursingLevelName;

    /**
    * 费用计算开始时间
    */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "费用计算开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "费用计算开始时间")
    private LocalDateTime feeStartTime;

    /**
    * 费用计算结束时间（如调级或退住）
    */
    @Excel(name = "费用计算结束时间", readConverterExp = "如=调级或退住")
    @ApiModelProperty(value = "费用计算结束时间")
    private LocalDateTime feeEndTime;

    /**
    * 押金（单位：元）
    */
    @Excel(name = "押金", readConverterExp = "单=位：元")
    @ApiModelProperty(value = "押金")
    private BigDecimal deposit;

    /**
    * 护理费用（元/月）
    */
    @Excel(name = "护理费用", readConverterExp = "元=/月")
    @ApiModelProperty(value = "护理费用")
    private BigDecimal nursingFee;

    /**
    * 床位费用（元/月）
    */
    @Excel(name = "床位费用", readConverterExp = "元=/月")
    @ApiModelProperty(value = "床位费用")
    private BigDecimal bedFee;

    /**
    * 医保支付金额（元/月）
    */
    @Excel(name = "医保支付金额", readConverterExp = "元=/月")
    @ApiModelProperty(value = "医保支付金额")
    private BigDecimal medicalInsurancePayment;

    /**
    * 政府补贴金额（元/月）
    */
    @Excel(name = "政府补贴金额", readConverterExp = "元=/月")
    @ApiModelProperty(value = "政府补贴金额")
    private BigDecimal governmentSubsidy;

    /**
    * 其他费用（元/月）
    */
    @Excel(name = "其他费用", readConverterExp = "元=/月")
    @ApiModelProperty(value = "其他费用")
    private BigDecimal otherFee;

    /**
    * 排序编号
    */
    @Excel(name = "排序编号")
    @ApiModelProperty(value = "排序编号")
    private Integer sortOrder;

}
